package cn.ym.mall.service;

import cn.ym.mall.entity.Goods;
import cn.ym.mall.vo.Page;

import java.sql.SQLException;
import java.util.List;

public interface GoodsService {
    /**
     * 分页查询所有商品
     * @return
     * @throws SQLException
     */
    public List<Goods> getAll() throws SQLException;

    /**
     * 分页查询所有商品
     * @param pageNo
     * @param pageSize
     * @return
     * @throws SQLException
     */
    public Page<Goods> getAll(Integer pageNo, Integer pageSize) throws SQLException;


    /**
     * 分页查询分类所有商品
     * @param pageNo
     * @param pageSize
     * @return
     * @throws SQLException
     */
    public Page<Goods> getGoodsByBid(Integer bid, Integer pageNo, Integer pageSize) throws SQLException;

    /**
     * 分页查询品牌所有商品
     * @param pageNo
     * @param pageSize
     * @return
     * @throws SQLException
     */
    public Page<Goods> getGoodsByTid(Integer tid, Integer pageNo, Integer pageSize) throws SQLException;

    /**
     * 分页查询商店所有商品
     * @param sid
     * @param pageNo
     * @param pageSize
     * @return
     * @throws SQLException
     */
    public Page<Goods> getGoodsBySid(Integer sid, Integer pageNo, Integer pageSize) throws SQLException;

    /**
     * 通过名字模糊查询商品
     * @param name
     * @return
     */
    public Page<Goods> getGoodsBySname(String name, Integer pageNo, Integer pageSize);

    /**
     * 通过id查商品
     * @return
     * @throws SQLException
     */
    public Goods getGoodsByGid(Integer gid) throws SQLException;

    /**
     * 添加商品
     * @param goods
     * @return
     */
    public boolean add(Goods goods);

    /**
     * 修改商品
     * @param goods
     * @return
     */
    public boolean update(Goods goods);

    /**
     * 删除商品
     * @param gid
     * @return
     */
    public boolean delete(Integer gid);

}
